package com.erp.erp_entitys.Purchase;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 采购产品表
 *
 * @date 2021-01-07
 */
public class PurchaseProduct {
    /**
     * 主键
     */
    private Integer id;

    /**
     * 采购id
     */
    private Integer purchaseId;

    /**
     * 产品id
     */
    private Integer productId;

    /**
     * 产品编码
     */
    private String productNo;

    /**
     * 规格编码
     */
    private String specNo;

    /**
     * 规格说明
     */
    private String normExplain;

    /**
     * 中文名称
     */
    private String chineseName;

    /**
     * 英文名称
     */
    private String englishName;

    /**
     * 中文描述
     */
    private String chineseDesc;

    /**
     * 英文描述
     */
    private String englishDesc;

    /**
     * 单位
     */
    private String unit;

    /**
     * 颜色
     */
    private String colour;

    /**
     * 素材供应商
     */
    private String materialSupplier;

    /**
     * 数量
     */
    private BigDecimal amount;

    /**
     * 成本单价  产品单价
     */
    private BigDecimal costPrice;

    /**
     * 产品表-含税单价
     */
    private BigDecimal taxedCostPrice;

    /**
     * 产品表-未税单价
     */
    private BigDecimal untaxedCostPrice;

    /**
     * 其他费用
     */
    private BigDecimal otherPrice;

    /**
     * 费用备注
     */
    private String otherDesc;

    /**
     * 单价  采购成本
     */
    private BigDecimal price;

    /**
     * 金额小计
     */
    private BigDecimal priceSubtotal;

    /**
     * 未税单价
     */
    private BigDecimal untaxedPrice;

    /**
     * 未税金额小计
     */
    private BigDecimal untaxedPriceSubtotal;

    /**
     * 毛重
     */
    private BigDecimal grossWeight;

    /**
     * 毛重小计
     */
    private BigDecimal grossSubtotal;

    /**
     * 净重
     */
    private BigDecimal netWeight;

    /**
     * 净重小计
     */
    private BigDecimal netSubtotal;

    /**
     * 体积
     */
    private BigDecimal volume;

    /**
     * 托数
     */
    private BigDecimal trayNumber;

    /**
     * 每托量
     */
    private BigDecimal trayCapacity;

    /**
     * 件数
     */
    private BigDecimal numberOfPiece;

    /**
     * 每件数量
     */
    private BigDecimal qty;

    /**
     * 供应商账期(与主表一致，不可修改)
     */
    private String payTime;

    /**
     * 销售合同号
     */
    private String salesContractNo;

    /**
     * 外包装长
     */
    private BigDecimal outPackLength;

    /**
     * 外包装宽
     */
    private BigDecimal outPackWidth;

    /**
     * 外包装高
     */
    private BigDecimal outPackHeight;

    /**
     * 外包装尺寸
     */
    private BigDecimal outPackSize;

    /**
     * 外包装数量
     */
    private BigDecimal outPackNum;

    /**
     * 剩余数量
     */
    private BigDecimal surplusNum;

    /**
     * 要求交货日期
     */
    private Date requestDeliveryDate;

    /**
     * 产品有效性(0：无效 1：有效)
     */
    private Integer proValid;

    /**
     * 操作类型（1：新增 2：删除 3：更新）
     */
    private Integer upType;

    /**
     * 操作人员
     */
    private String upUser;

    /**
     * 操作时间
     */
    private Date upTime;

    /**
     * 是否走信保订单(0:否 1:是)
     */
    private Integer whetherCreditGuarantee;
    /**
     * 信保订单金额USD
     */
    private BigDecimal creditGuaranteeAmount;

    /**
     * 瓶底是否指定Logo(1:不指定，2：指定光面，3：指定客户Logo，4：指定Rtco Logo)
     */
    private Integer modeOfTrade;

    /**
     * 客户开票货物名称
     */
    private String customerInvoiceGoodsName;

    /**
     * 客户开票规格型号
     */
    private String customerInvoiceSpecModel;

    /**
     * 客户物料编码
     */
    private String customerMaterialsCode;


    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getPurchaseId() {
        return purchaseId;
    }

    public void setPurchaseId(Integer purchaseId) {
        this.purchaseId = purchaseId;
    }

    public Integer getProductId() {
        return productId;
    }

    public void setProductId(Integer productId) {
        this.productId = productId;
    }

    public String getProductNo() {
        return productNo;
    }

    public void setProductNo(String productNo) {
        this.productNo = productNo == null ? null : productNo.trim();
    }

    public String getSpecNo() {
        return specNo;
    }

    public void setSpecNo(String specNo) {
        this.specNo = specNo == null ? null : specNo.trim();
    }

    public String getNormExplain() {
        return normExplain;
    }

    public void setNormExplain(String normExplain) {
        this.normExplain = normExplain == null ? null : normExplain.trim();
    }

    public String getChineseName() {
        return chineseName;
    }

    public void setChineseName(String chineseName) {
        this.chineseName = chineseName == null ? null : chineseName.trim();
    }

    public String getEnglishName() {
        return englishName;
    }

    public void setEnglishName(String englishName) {
        this.englishName = englishName == null ? null : englishName.trim();
    }

    public String getChineseDesc() {
        return chineseDesc;
    }

    public void setChineseDesc(String chineseDesc) {
        this.chineseDesc = chineseDesc == null ? null : chineseDesc.trim();
    }

    public String getEnglishDesc() {
        return englishDesc;
    }

    public void setEnglishDesc(String englishDesc) {
        this.englishDesc = englishDesc == null ? null : englishDesc.trim();
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit == null ? null : unit.trim();
    }

    public String getColour() {
        return colour;
    }

    public void setColour(String colour) {
        this.colour = colour == null ? null : colour.trim();
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getCostPrice() {
        return costPrice;
    }

    public void setCostPrice(BigDecimal costPrice) {
        this.costPrice = costPrice;
    }

    public BigDecimal getTaxedCostPrice() {
        return taxedCostPrice;
    }

    public void setTaxedCostPrice(BigDecimal taxedCostPrice) {
        this.taxedCostPrice = taxedCostPrice;
    }

    public BigDecimal getUntaxedCostPrice() {
        return untaxedCostPrice;
    }

    public void setUntaxedCostPrice(BigDecimal untaxedCostPrice) {
        this.untaxedCostPrice = untaxedCostPrice;
    }

    public BigDecimal getOtherPrice() {
        return otherPrice;
    }

    public void setOtherPrice(BigDecimal otherPrice) {
        this.otherPrice = otherPrice;
    }

    public String getOtherDesc() {
        return otherDesc;
    }

    public void setOtherDesc(String otherDesc) {
        this.otherDesc = otherDesc == null ? null : otherDesc.trim();
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPriceSubtotal() {
        return priceSubtotal;
    }

    public void setPriceSubtotal(BigDecimal priceSubtotal) {
        this.priceSubtotal = priceSubtotal;
    }

    public BigDecimal getUntaxedPrice() {
        return untaxedPrice;
    }

    public void setUntaxedPrice(BigDecimal untaxedPrice) {
        this.untaxedPrice = untaxedPrice;
    }

    public BigDecimal getUntaxedPriceSubtotal() {
        return untaxedPriceSubtotal;
    }

    public void setUntaxedPriceSubtotal(BigDecimal untaxedPriceSubtotal) {
        this.untaxedPriceSubtotal = untaxedPriceSubtotal;
    }

    public BigDecimal getGrossWeight() {
        return grossWeight;
    }

    public void setGrossWeight(BigDecimal grossWeight) {
        this.grossWeight = grossWeight;
    }

    public BigDecimal getGrossSubtotal() {
        return grossSubtotal;
    }

    public void setGrossSubtotal(BigDecimal grossSubtotal) {
        this.grossSubtotal = grossSubtotal;
    }

    public BigDecimal getNetWeight() {
        return netWeight;
    }

    public void setNetWeight(BigDecimal netWeight) {
        this.netWeight = netWeight;
    }

    public BigDecimal getNetSubtotal() {
        return netSubtotal;
    }

    public void setNetSubtotal(BigDecimal netSubtotal) {
        this.netSubtotal = netSubtotal;
    }

    public BigDecimal getVolume() {
        return volume;
    }

    public void setVolume(BigDecimal volume) {
        this.volume = volume;
    }

    public BigDecimal getTrayNumber() {
        return trayNumber;
    }

    public void setTrayNumber(BigDecimal trayNumber) {
        this.trayNumber = trayNumber;
    }

    public BigDecimal getTrayCapacity() {
        return trayCapacity;
    }

    public void setTrayCapacity(BigDecimal trayCapacity) {
        this.trayCapacity = trayCapacity;
    }

    public BigDecimal getNumberOfPiece() {
        return numberOfPiece;
    }

    public void setNumberOfPiece(BigDecimal numberOfPiece) {
        this.numberOfPiece = numberOfPiece;
    }

    public BigDecimal getQty() {
        return qty;
    }

    public void setQty(BigDecimal qty) {
        this.qty = qty;
    }

    public String getPayTime() {
        return payTime;
    }

    public void setPayTime(String payTime) {
        this.payTime = payTime == null ? null : payTime.trim();
    }

    public String getSalesContractNo() {
        return salesContractNo;
    }

    public void setSalesContractNo(String salesContractNo) {
        this.salesContractNo = salesContractNo == null ? null : salesContractNo.trim();
    }

    public BigDecimal getOutPackLength() {
        return outPackLength;
    }

    public void setOutPackLength(BigDecimal outPackLength) {
        this.outPackLength = outPackLength;
    }

    public BigDecimal getOutPackWidth() {
        return outPackWidth;
    }

    public void setOutPackWidth(BigDecimal outPackWidth) {
        this.outPackWidth = outPackWidth;
    }

    public BigDecimal getOutPackHeight() {
        return outPackHeight;
    }

    public void setOutPackHeight(BigDecimal outPackHeight) {
        this.outPackHeight = outPackHeight;
    }

    public BigDecimal getOutPackSize() {
        return outPackSize;
    }

    public void setOutPackSize(BigDecimal outPackSize) {
        this.outPackSize = outPackSize;
    }

    public BigDecimal getOutPackNum() {
        return outPackNum;
    }

    public void setOutPackNum(BigDecimal outPackNum) {
        this.outPackNum = outPackNum;
    }

    public BigDecimal getSurplusNum() {
        return surplusNum;
    }

    public void setSurplusNum(BigDecimal surplusNum) {
        this.surplusNum = surplusNum;
    }

    public Date getRequestDeliveryDate() {
        return requestDeliveryDate;
    }

    public void setRequestDeliveryDate(Date requestDeliveryDate) {
        this.requestDeliveryDate = requestDeliveryDate;
    }

    public Integer getProValid() {
        return proValid;
    }

    public void setProValid(Integer proValid) {
        this.proValid = proValid;
    }

    public Integer getUpType() {
        return upType;
    }

    public void setUpType(Integer upType) {
        this.upType = upType;
    }

    public String getUpUser() {
        return upUser;
    }

    public void setUpUser(String upUser) {
        this.upUser = upUser;
    }

    public Date getUpTime() {
        return upTime;
    }

    public void setUpTime(Date upTime) {
        this.upTime = upTime;
    }

    public Integer getWhetherCreditGuarantee() {
        return whetherCreditGuarantee;
    }

    public void setWhetherCreditGuarantee(Integer whetherCreditGuarantee) {
        this.whetherCreditGuarantee = whetherCreditGuarantee;
    }

    public BigDecimal getCreditGuaranteeAmount() {
        return creditGuaranteeAmount;
    }

    public void setCreditGuaranteeAmount(BigDecimal creditGuaranteeAmount) {
        this.creditGuaranteeAmount = creditGuaranteeAmount;
    }

    public String getMaterialSupplier() {
        return materialSupplier;
    }

    public void setMaterialSupplier(String materialSupplier) {
        this.materialSupplier = materialSupplier;
    }

    public Integer getModeOfTrade() {
        return modeOfTrade;
    }

    public void setModeOfTrade(Integer modeOfTrade) {
        this.modeOfTrade = modeOfTrade;
    }


    public String getCustomerInvoiceGoodsName() {
        return customerInvoiceGoodsName;
    }

    public void setCustomerInvoiceGoodsName(String customerInvoiceGoodsName) {
        this.customerInvoiceGoodsName = customerInvoiceGoodsName;
    }

    public String getCustomerInvoiceSpecModel() {
        return customerInvoiceSpecModel;
    }

    public void setCustomerInvoiceSpecModel(String customerInvoiceSpecModel) {
        this.customerInvoiceSpecModel = customerInvoiceSpecModel;
    }

    public String getCustomerMaterialsCode() {
        return customerMaterialsCode;
    }

    public void setCustomerMaterialsCode(String customerMaterialsCode) {
        this.customerMaterialsCode = customerMaterialsCode;
    }


    /**
     * 重写toString
     */
    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("PurchaseProduct").append('[')
                .append("id=")
                .append(id)
                .append(",purchaseId=")
                .append(purchaseId)
                .append(",productId=")
                .append(productId)
                .append(",productNo=")
                .append(productNo)
                .append(",specNo=")
                .append(specNo)
                .append(",normExplain=")
                .append(normExplain)
                .append(",chineseName=")
                .append(chineseName)
                .append(",englishName=")
                .append(englishName)
                .append(",chineseDesc=")
                .append(chineseDesc)
                .append(",englishDesc=")
                .append(englishDesc)
                .append(",unit=")
                .append(unit)
                .append(",colour=")
                .append(colour)
                .append(",materialSupplier=")
                .append(materialSupplier)
                .append(",amount=")
                .append(amount)
                .append(",costPrice=")
                .append(costPrice)
                .append(",taxedCostPrice=")
                .append(taxedCostPrice)
                .append(",untaxedCostPrice=")
                .append(untaxedCostPrice)
                .append(",otherPrice=")
                .append(otherPrice)
                .append(",otherDesc=")
                .append(otherDesc)
                .append(",price=")
                .append(price)
                .append(",priceSubtotal=")
                .append(priceSubtotal)
                .append(",untaxedPrice=")
                .append(untaxedPrice)
                .append(",untaxedPriceSubtotal=")
                .append(untaxedPriceSubtotal)
                .append(",grossWeight=")
                .append(grossWeight)
                .append(",grossSubtotal=")
                .append(grossSubtotal)
                .append(",netWeight=")
                .append(netWeight)
                .append(",netSubtotal=")
                .append(netSubtotal)
                .append(",volume=")
                .append(volume)
                .append(",trayNumber=")
                .append(trayNumber)
                .append(",trayCapacity=")
                .append(trayCapacity)
                .append(",numberOfPiece=")
                .append(numberOfPiece)
                .append(",qty=")
                .append(qty)
                .append(",payTime=")
                .append(payTime)
                .append(",salesContractNo=")
                .append(salesContractNo)
                .append(",outPackLength=")
                .append(outPackLength)
                .append(",outPackWidth=")
                .append(outPackWidth)
                .append(",outPackHeight=")
                .append(outPackHeight)
                .append(",outPackSize=")
                .append(outPackSize)
                .append(",outPackNum=")
                .append(outPackNum)
                .append(",surplusNum=")
                .append(surplusNum)
                .append(",requestDeliveryDate=")
                .append(requestDeliveryDate)
                .append(",proValid=")
                .append(proValid)
                .append(",upType=")
                .append(upType)
                .append(",upUser=")
                .append(upUser)
                .append(",upTime=")
                .append(upTime)
                .append(",whetherCreditGuarantee=")
                .append(whetherCreditGuarantee)
                .append(",creditGuaranteeAmount=")
                .append(creditGuaranteeAmount)
                .append(",modeOfTrade=")
                .append(modeOfTrade)
                .append(",customerInvoiceGoodsName=")
                .append(customerInvoiceGoodsName)
                .append(",customerInvoiceSpecModel=")
                .append(customerInvoiceSpecModel)
                .append(",customerMaterialsCode=")
                .append(customerMaterialsCode)
                .append(']');
        return sb.toString();
    }
}